// components/Labs/Labs.js
Component({
  /**
   * 组件的属性列表
   * 接收父向子传递的数据
   * 即，存放从父组件中接收的数据
   */
  properties: {
      // 要接收数据的名称
    labs:{
      type:Array,
      value:[]
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
  },

  /**
   * 组件的方法列表
   * 1、页面.js 文件中，存放事件回调函数的时候，存放在data同层级下的
   * 2、组件.js 文件中，存放事件回调函数的时候，必须要存放在 methods中
   */
  methods: {
    hanldeItemTap(e){
      /*
      1、绑定点击事件 需要在methods中绑定
      2、获取被点击的索引
      3、获取原数组
      4、对数组循环
          1 给每一个循环项  选中属性改为 false
          2 给当前的索引项添加激活选中的效果
      */  
     // 获取索引
     const {index} = e.currentTarget.dataset;
     //触发父组件中的自定义事件，同时传递数据给
     this.triggerEvent("itemChange",{index});
     //获取data中的数组
     //解构对复杂类型进行解构的时候，复制了一份变量的引用
     //最严谨的做法是：重新拷贝一份数组，再对这个数组的备份进行处理
      // let labs = JSON.parse(JSON.stringify(this.data.labs));
     //不要直接修改 this.data.数据
    //  let {labs} = this.data;
    //  let labs = this.data;
     // 循环数组  
     //[].forEach  遍历数组  遍历数组的时候 修改了v，也会导致原数组被修改
    //  labs.forEach((v,i)=>i===index?v.isActive=true:v.isActive=false);
    //   this.setData({
    //     labs
    //   })
    }
  }
})
